// 完全兼容原有样式结构的存储工具
const NOTICE_KEY = 'live_notices_v2'

export default {
	// 获取所有预告（保持原数据结构）
	getNotices() {
		try {
			return JSON.parse(uni.getStorageSync(NOTICE_KEY)) || []
		} catch (e) {
			console.error('存储读取失败', e)
			return []
		}
	},

	// 添加预告（不改变原数据格式）
	addNotice(notice) {
		const notices = this.getNotices()
		if (notices.length >= 3) {
			uni.showToast({
				title: '最多3个预告',
				icon: 'none'
			})
			return false
		}

		// 保持原有数据结构
		const newNotice = {
			time: notice.time,
			title: notice.title || '新直播预告',
			reserveCount: 0,
			status: '未开始',
			// 新增字段不影响原有样式
			_id: Date.now().toString(),
			_createdAt: new Date().toISOString()
		}

		notices.unshift(newNotice)
		return this._save(notices)
	},

	// 更新预告（兼容旧数据）
	updateNotice(id, updates) {
		const notices = this.getNotices()
		const index = notices.findIndex(n => n._id === id)
		if (index === -1) return false

		// 保留原有字段
		notices[index] = {
			...notices[index],
			...updates,
			// 不覆盖原有字段
			time: updates.time || notices[index].time,
			title: updates.title || notices[index].title
		}

		return this._save(notices)
	},

	// 删除预告（保持原调用方式）
	deleteNotice(id) {
		const notices = this.getNotices().filter(n => n._id !== id)
		return this._save(notices)
	},

	// 私有保存方法（不影响外部）
	_save(notices) {
		try {
			uni.setStorageSync(NOTICE_KEY, JSON.stringify(notices))
			return true
		} catch (e) {
			console.error('存储失败', e)
			uni.showToast({
				title: '保存失败',
				icon: 'none'
			})
			return false
		}
	}
}